Contents

InfSpy Ver 1.15
(c) 1993 Dean Software Design

Overview
Loading InfSpy
Closing InfSpy
Global Heap
Active Windows
Windows Tasks
Terminating Tasks
Loaded Modules
Unloading Modules
Memory Dump
Saving a Memory Dump
Printing a Memory Dump
Local Heap Walk


InfSpy Overview

InfSpy is a Windows utility that interrogates and lists the various items within your Windows environment, including:

A. Global Heap
B. Active Windows
C. Windows Tasks
D. Loaded Modules

Windows developers, testers, debuggers and technical assistants have few tools that will allow them to detail what exactly is loaded and running under Windows.  InfSpy will provide real-time information regarding the items that directly affect Windows and the user.

InfSpy has a single main window broken into 4 list boxes, each showing one of the above Windows items.  Each list box can be independantly scrolled and examined.

InfSpy can also print or save values from it's examination of Windows as well as having several key utility features for terminating hung tasks and unloading loaded modules.


Loading InfSpy

InfSpy can be loaded:
- As an Icon from a Program Manager group.
- From the RUN feature of Program Manager or other Windows Shell programs.

If you have added InfSpy to a group within Program Manager (or other shells) you can load InfSpy by Clicking on the Icon.

If you use the RUN facility within Program Manager (or other shells) you can load InfSpy by simply typing "INFSPY" and pressing ENTER.


Closing InfSpy

You can close InfSpy by selecting the "Close" option from the System Menu or you can double click your mouse on the System Menu indicator at the top left corner of the InfSpy Window.


Global Heap

The first list box contains all valid Local Memory Descriptors for the Global Heap within your Windows environment.  Each program, DLL, task or module that is loaded allocates certain memory areas for its own internal use, such as tables, lists and pointers.

The Items on each line of the list box are:

- Handle to this global heap memory descriptor.
- Size of the allocated memory in bytes.
- DPL
- Code or Data memory type
- Read or Read/Write access to the memory
- Up or Down flag
- Accessed flag
- Loaded flag
- System Address for this memory
- Local Heap available flag
- Type of Memory descriptor
- Owner module name

In order to further examine each descriptor double click on it.  This will create a memory examination window which will show the contents of those particular memory segments in a Hex/Ascii dump.

Related Subjects:
Memory Dump
Local Heap Walk


Memory Dump

The memory dump is used to view Global Heap entries.  To invoke a memory dump double click on any Global Heap entry.  A new window will appear showing the Heap values in the following format:

000A 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F ................

- the offset
- 16 byte hex values
- 16 byte ascii values.  All non-terminal characters are replaced with a '.'.

Each memory dump can be retained, minimized or viewed with other memory dumps.  Since the memory dump window is dependant on InfSpy, when you close InfSpy the dump will automatically close.  In order to save a dump for later viewing use the Print or Save options.

Related Subjects:
Saving a Memory Dump.
Printing a Memory Dump.


Saving a Memory Dump

To save a memory dump select the 'Save Dump To File' from the System Menu of the Memory Dump window. (the system menu can be accessed by clicking on the box in the upper left corner of the window or by pressing 'ALT SPACEBAR' on your keyboard.


Printing a Memory Dump

To print a memory dump select the 'Print Dump' from the System Menu of the Memory Dump window. (the system menu can be accessed by clicking on the box in the upper left corner of the window or by pressing 'ALT SPACEBAR' on your keyboard.


Local Heap Walk

Certain Global Heap descriptors have Local Heap relationships.  If so, a Global Heap entry will be marked with an 'L' in the 'Loc' column of the Global Heap Walker.

To walk the Local Heap, select the Global Heap entry and then select the 'Local Heap' menu option on the InfSpy menu.  If the Global Heap entry does not have any Local Heap a message will appear to notify you.


Active Windows

The 2nd list box lists all active windows in your Windows environment. A window can be described as any window, dialog box, list box, button, control or Icon that is active (either visible, hidden or minimized) in your Window environment.

Each line in the listbox contains the following information on a Window:

- The handle
- The type of Window (Top Level, Child, Icon)
- The parent handle
- The task handle
- Class name
- Window name

In order to further detail each Window double click on it.  This will create a dialog box that describes the following items on each Window:

- Window Style
- Class Style
- Windows function address
- Class extra allocation
- Windows extra allocation
- Window rectangle co-ordinates
- Window rectangle size
- Window related handles


Windows Tasks

The 3rd list box lists all the active tasks within the Windows environment.  A task essentially is a loaded application that may have many modules or Windows.

The items listed here are the same as those listed by the Windows Task Manager which can be invoked by pressing CTRL-ESC on your keyboard.  Unfortunately the Windows Task Manager does not provide any detail on the listed task.

The information provided about each task is:

- The handle
- The parent's handle
- The module's handle
- The name of the task

In order to get more details on a task double click on it.  This will cause a dialog to appear that relates the following information:

- The parent handle
- The instance handle
- The value of the SS register
- The stack top
- The minimum stack
- The PSP offset
- The Queue handle
- The Module handle
- The SP register
- The Stack bottom
- Number of Events

Related subjects: Terminating Tasks


Terminating tasks

If a Windows program hangs or enters an infinite loop, Windows may not be able to terminate it using the standard Program Manager termination.  The 'Terminate' menu option will terminate any program in any state.

When you select 'Terminate' you will be asked to confirm that you want to actually terminate the task you have selected.

Note: as the warning states, terminating a task may adversely affect Windows.  It is strongly recommended that you Restart Windows immediately.


Loaded Modules

The final list box contains a list of all the modules that are currently loaded by your Windows environment.  Modules include programs, DLL, other libraries, fonts, drivers and any other code that is loaded from a file.

When you double click on a module that is listed you will be presented with the size, date and time of the module as it appears on disk in the path that is listed.  This is useful in determining correct versions.

Related Subjects: Unloading Modules


Unloading Modules

Windows loads many modules, sometimes multiple copies of a module.  In order to free resources, memory and generally improve the performance of your system, you can unload modules that are listed in the Loaded Modules list box. The 'Unload' menu option will unload any module listed in the list box.

When you select 'Unload' you will be asked to confirm that you want to actually unload the module you have selected.  If there are multiple copies of a module loaded, 'Unload' will unload a single copy each time, until finally all copies are unloaded.

Note: as the warning states, Unloading a module may adversely affect Windows.  Be cautious about what you unload since unloading device drivers, DLLs or other modules may cause applications to hang or Windows to lock up.


Register this Program

This version of InfSpy is Unregistered.  You may use this program without restriction, however we expect that if you like InfSpy that you will register the program with the authors.

To Register send a cheque or money order for $6.99 to:

Dean Software Design
P.O. Box 23311
Everett, WA 98203-0331

(Canada/Mexico add $0.50 for postage, all other countries add $1.50 for postage please!)

Your registration will entitle you to:

1. A registered copy of the latest version of InfSpy.
2. Other fine shareware by Dean Software Design.
3. Support.

Please use the following form and allow 1-2 weeks for delivery.

===============================

InfSpy Registration

Name:

Company:

Register to:

Address:

City:

Phone:

Number of Copies: _________

Diskette Size: ____________

Version: Latest _______ Specific _______

Total: $___________________

Special Instructions:

===============================

Do you have any questions or comments? Send us a letter or use EMail on CompuServe address 75240,65.  We will promptly get back to you!

Disclaimer - Registration Agreement
===================================

Users of InfSpy must accept this disclaimer of warranty:

"InfSpy is supplied as is. The author disclaims all warranties, expressed or implied, including, without limitation, the warranties of merchantability and of fitness for any purpose. The author assumes no liability for damages, direct or consequential, which may result from the use of InfSpy."

InfSpy is a "shareware program" and is provided at no charge to the user for evaluation. Feel free to share it with your friends, but please do not give it away altered or as part of another system. The essence of "user-supported" software is to provide personal computer users with quality software without high prices, and yet to provide incentive for programmers to continue to develop new products. If you find this program useful and find that you are using InfSpy and continue to use InfSpy after a reasonable trial period, you must register it!  The registration fee will license one copy for use on any one computer at any one time.

Commercial users of InfSpy must register and pay for their copies of InfSpy within 30 days of first use or their license is withdrawn. Site-License arrangements may be made by contacting Dean Software Design.  In general, multiple copies of InfSpy can be registered at the following rates:

 1 - 10 copies:   $  6.99 per copy
11 - 20 copies:   $ 65.00 + $6.50 per copy over 10
21 - 50 copies:   $120.00 + $6.00 per copy over 20
51 - 100 copies:  $275.00 + $5.50 per copy over 50
101+ copies:      $500.00 (site license, unlimited)

Anyone distributing InfSpy for any kind of remuneration must first contact Dean Software Design at the indicated address for authorization. This authorization will be automatically granted to distributors recognized by the (ASP) as adhering to its guidelines for shareware distributors, and such distributors may begin offering InfSpy immediately (However Dean Software Design must still be advised so that the distributor can be kept up-to-date with the latest version of InfSpy).

You are encouraged to pass a copy of InfSpy along to your friends for evaluation. Please encourage them to register their copy if they find that they can use it.

All registers user receive free technical support for 90 days from the date of registration. Also all registered users receive a free upgrade to the next version of this program when that version becomes available. To report bugs, receive help and bug fixes please send a CompuServe message via CompuServe Mail to:

Dean Software Design
[75240,65]

or, if you do not have access to CompuServe, write to us!

Definition Of Shareware
=======================

Shareware distribution gives users a chance to try software before buying it. If you try a Shareware program and continue using it, you are expected to register. Individual programs differ on details -- some request registration while others require it, some specify a maximum trial period. With registration, you get anything from the simple right to continue using the software to an updated program with printed manual.

Copyright laws apply to both Shareware and commercial software, and the copyright holder retains all rights, with a few specific exceptions as stated below. Shareware authors are accomplished programmers, just like commercial authors, and the programs are of comparable quality. (In both cases, there are good programs and bad ones!) The main difference is in the method of distribution. The author specifically grants the right to copy and distribute the software, either to all and sundry or to a specific group. For example, some authors require written permission before a commercial disk vendor may copy their Shareware.

Shareware is a distribution method, not a type of software. You should find software that suits your needs and pocketbook, whether it's commercial or Shareware. The Shareware system makes fitting your needs easier, because you can try before you buy. And because the overhead is low, prices are low also. Shareware has the ultimate money-back guarantee - if you don't use the product, you don't pay for it.